<?php

namespace Mogod\Core\DependencyInjection\ServiceSource;

/**
 *
 * Создание сервисов по описанию в конфигах
 *
 * @author goorus, morph
 *
 */
class ServiceSource
{

	/**
	 * Воркер
	 *
	 * @var \Mogod\Core\DependencyInjection\ServiceSource\ServiceSourceWorkerAbstract
	 */
	protected $worker;

	/**
	 * Возвращает сервис, описанный в конфигах
	 *
	 * @param string $class Название сервиса
	 * @param array $context Аргументы конструктора (ассоциативный массив)
	 * @return object Сервис
	 */
	public function get($class, $context)
	{
		return $this->worker->get($class, $context);
	}

	/**
	 * Возвращает текущий менеджер сервисов
	 *
	 * @return \Mogod\Core\DependencyInjection\ServiceSource\ServiceSourceWorkerAbstract
	 */
	public function getWorker()
	{
		return $this->worker;
	}

	/**
	 *
	 * @param \Mogod\Core\DependencyInjection\ServiceSource\ServiceSourceWorkerAbstract $worker
	 * @return $this
	 */
	public function setWorker($worker)
	{
		$this->worker = $worker;
		return $this;
	}

}
